package com.bbva.kyfb.kyfbdto.firmas.fachada.interfaces.v01;

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import com.bbva.jee.arq.spring.core.httpService.HttpClient;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.DeletedFilesResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileAuditRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileAuditResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileCompaniesRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileCompaniesResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileMiFIDRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileMiFIDResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoToDeleteRequestMaking;

/**
 * The Interface IServicioFicheroConfeccionV01.
 */
@HttpClient(serviceName="servicioFConfeccionHttp")
@Path("/v01/ServicioFConfeccion/")
public interface IServicioFicheroConfeccionV01 {

	/**
	 * Gets the componentes confeccion referencia.
	 *
	 * @param info the info
	 * @return the componentes confeccion referencia
	 */
	@POST
    @Path("/confeccion/infoConfecRefer/")
    @Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN })
	public InfoFileResponse getComponentesConfeccionReferencia(InfoFileRequest info);
	
	/**
	 * Delete componente confeccion.
	 *
	 * @param info the info
	 * @return the deleted files response
	 */
	@POST
    @Path("/confeccion/deleteCompConf/")
    @Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN })
	public DeletedFilesResponse deleteComponenteConfeccion (InfoToDeleteRequestMaking info);
	
	/**
	 * Gets the auditoria componente confeccion.
	 *
	 * @param info the info
	 * @return the auditoria componente confeccion
	 */
	@POST
    @Path("/confeccion/audCompConf/")
    @Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN })
	public InfoFileAuditResponse getAuditoriaComponenteConfeccion (InfoFileAuditRequest info);
	
	/**
	 * Gets the componente tipo mifid.
	 *
	 * @param info the info
	 * @return the componente tipo mifid
	 */
	@POST
    @Path("/confeccion/mifid/")
    @Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN })
	public InfoFileMiFIDResponse getComponenteTipoMifid(InfoFileMiFIDRequest info);
	
	/**
	 * Gets the consulta empresas asociadas.
	 *
	 * @param info the info
	 * @return the consulta empresas asociadas
	 */
	@POST
    @Path("/confeccion/empresaAsociada/")
    @Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN })
	public InfoFileCompaniesResponse getConsultaEmpresasAsociadas(InfoFileCompaniesRequest info);
	
}
